home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 15 / CU Amiga Magazine's Super CD-ROM 15 (1997)(EMAP Images)(GB)[!][issue 1997-10].iso / CUCD / Graphics / Ghostscript / source / gdevsgi.h < prev    next >
Text File  |  1996-10-21  |  2KB  |  67 lines

  1. /*
  2.  * This file is distributed with Ghostscript, but its author,
  3.  * Tanmoy Bhattacharya (tanmoy@qcd.lanl.gov) hereby places it in the
  4.  * public domain.
  5.  *
  6.  * The contents of this file were derived (indeed, largely copied) from
  7.  * the file image.h on SGI's file server; there is no copyright on that file.
  8.  */
  9.  
  10. /* gdevsgi.h */
  11. /* SGI raster file definitions */
  12.  
  13. #define IMAGIC     0732
  14.  
  15. /* colormap of images */
  16. #define CM_NORMAL        0
  17. #define CM_DITHERED        1
  18. #define CM_SCREEN        2
  19. #define CM_COLORMAP        3
  20. #define TYPEMASK        0xff00
  21. #define BPPMASK            0x00ff
  22. #define ITYPE_VERBATIM        0x0000
  23. #define ITYPE_RLE        0x0100
  24. #define ISRLE(type)        (((type) & 0xff00) == ITYPE_RLE)
  25. #define ISVERBATIM(type)    (((type) & 0xff00) == ITYPE_VERBATIM)
  26. #define BPP(type)        ((type) & BPPMASK)
  27. #define RLE(bpp)        (ITYPE_RLE | (bpp))
  28. #define VERBATIM(bpp)        (ITYPE_VERBATIM | (bpp))
  29. #define    IBUFSIZE(pixels)    ((pixels+(pixels>>6))<<2)
  30. #define    RLE_NOP            0x00
  31.  
  32. #define    ierror(p)        (((p)->flags&_IOERR)!=0)
  33. #define    ifileno(p)        ((p)->file)
  34. #define    getpix(p)        (--(p)->cnt>=0 ? *(p)->ptr++ : ifilbuf(p))
  35. #define putpix(p,x)        (--(p)->cnt>=0 \
  36.                     ? ((int)(*(p)->ptr++=(unsigned)(x))) \
  37.                     : iflsbuf(p,(unsigned)(x)))
  38.  
  39. typedef struct {
  40.     unsigned short    imagic;        /* stuff saved on disk . . */
  41.     unsigned short     type;
  42.     unsigned short     dim;
  43.     unsigned short     xsize;
  44.     unsigned short     ysize;
  45.     unsigned short     zsize;
  46.     unsigned long     min_color;
  47.     unsigned long     max_color;
  48.     unsigned long    wastebytes;    
  49.     char         name[80];
  50.     unsigned long    colormap;
  51.  
  52.     long         file;        /* stuff used in core only */
  53.     unsigned short     flags;
  54.     short        dorev;
  55.     short        x;
  56.     short        y;
  57.     short        z;
  58.     short        cnt;
  59.     unsigned short    *ptr;
  60.     unsigned short    *base;
  61.     unsigned short    *tmpbuf;
  62.     unsigned long    offset;
  63.     unsigned long    rleend;        /* for rle images */
  64.     unsigned long    *rowstart;    /* for rle images */
  65.     long        *rowsize;    /* for rle images */
  66. } IMAGE;
  67.